// Code generated by MockGen. DO NOT EDIT.
// Source: set.go
//
// Generated by this command:
//
//	mockgen -destination mocks/set_mock.go -source set.go -package mocks
//
// Package mocks is a generated GoMock package.
package mocks

import (
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// MockSet is a mock of Set interface.
type MockSet[T comparable] struct {
	ctrl     *gomock.Controller
	recorder *MockSetMockRecorder[T]
}

// MockSetMockRecorder is the mock recorder for MockSet.
type MockSetMockRecorder[T comparable] struct {
	mock *MockSet[T]
}

// NewMockSet creates a new mock instance.
func NewMockSet[T comparable](ctrl *gomock.Controller) *MockSet[T] {
	mock := &MockSet[T]{ctrl: ctrl}
	mock.recorder = &MockSetMockRecorder[T]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockSet[T]) EXPECT() *MockSetMockRecorder[T] {
	return m.recorder
}

// Add mocks base method.
func (m *MockSet[T]) Add(arg0 T) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Add", arg0)
	ret0, _ := ret[0].(bool)
	return ret0
}

// Add indicates an expected call of Add.
func (mr *MockSetMockRecorder[T]) Add(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Add", reflect.TypeOf((*MockSet[T])(nil).Add), arg0)
}

// Clear mocks base method.
func (m *MockSet[T]) Clear() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Clear")
}

// Clear indicates an expected call of Clear.
func (mr *MockSetMockRecorder[T]) Clear() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Clear", reflect.TypeOf((*MockSet[T])(nil).Clear))
}

// Contains mocks base method.
func (m *MockSet[T]) Contains(arg0 ...T) bool {
	m.ctrl.T.Helper()
	varargs := []any{}
	for _, a := range arg0 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Contains", varargs...)
	ret0, _ := ret[0].(bool)
	return ret0
}

// Contains indicates an expected call of Contains.
func (mr *MockSetMockRecorder[T]) Contains(arg0 ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Contains", reflect.TypeOf((*MockSet[T])(nil).Contains), arg0...)
}

// Delete mocks base method.
func (m *MockSet[T]) Delete(arg0 T) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Delete", arg0)
}

// Delete indicates an expected call of Delete.
func (mr *MockSetMockRecorder[T]) Delete(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockSet[T])(nil).Delete), arg0)
}

// Len mocks base method.
func (m *MockSet[T]) Len() uint {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Len")
	ret0, _ := ret[0].(uint)
	return ret0
}

// Len indicates an expected call of Len.
func (mr *MockSetMockRecorder[T]) Len() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Len", reflect.TypeOf((*MockSet[T])(nil).Len))
}

// Values mocks base method.
func (m *MockSet[T]) Values() []T {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Values")
	ret0, _ := ret[0].([]T)
	return ret0
}

// Values indicates an expected call of Values.
func (mr *MockSetMockRecorder[T]) Values() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Values", reflect.TypeOf((*MockSet[T])(nil).Values))
}
